import 'package:auto_route/auto_route.dart';
import 'package:casdon/app/splash_screen.dart';
import 'package:casdon/app/tab_screen.dart';

import 'package:casdon/modules/device/ui/screen/add_device_progress_screen.dart';
import 'package:casdon/modules/device/ui/screen/ciot_pairnet_guid_screen.dart';
import 'package:casdon/modules/device/ui/screen/device_home_screen.dart';
import 'package:casdon/modules/device/ui/screen/device_share_list_screen.dart';
import 'package:casdon/modules/device/ui/screen/get_bind_cat_code_screen.dart';
import 'package:casdon/modules/device/ui/screen/pairnet_failed_screen.dart';
import 'package:casdon/modules/device/ui/screen/pairnet_list_screen.dart';
import 'package:casdon/modules/device/ui/screen/pairnet_readme_screen.dart';
import 'package:casdon/modules/device/ui/screen/pairnet_success_screen.dart';
import 'package:casdon/modules/device/ui/screen/qr_device_progress_screen.dart';
import 'package:casdon/modules/device/ui/screen/qr_scanner_screen.dart';
import 'package:casdon/modules/device/ui/screen/tm_bind_account_screen.dart';
import 'package:casdon/modules/device/ui/screen/tm_bind_result_screen.dart';
import 'package:casdon/modules/device/ui/screen/tuya_pairnet_guid_screen.dart';
import 'package:casdon/modules/device/ui/screen/wifi_config_screen.dart';
import 'package:casdon/modules/feedback/ui/screen/feedback_continue_screen.dart';
import 'package:casdon/modules/feedback/ui/screen/feedback_list_screen.dart';
import 'package:casdon/modules/feedback/ui/screen/feedback_post_screen.dart';
import 'package:casdon/modules/home/ui/screen/home_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/image_browser_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_create_post_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_home_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_official_topic_list_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_report_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_search_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_self_home_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_topic_detail_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/life_user_home_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/reply_list_screen.dart';
import 'package:casdon/modules/lifeCircle/ui/screen/video_player_screen.dart';
import 'package:casdon/modules/login/ui/screens/account_input_screen.dart';
import 'package:casdon/modules/login/ui/screens/bind_account_screen.dart';
import 'package:casdon/modules/login/ui/screens/code_input_screen.dart';
import 'package:casdon/modules/login/ui/screens/forget_pwd_screen.dart';
import 'package:casdon/modules/login/ui/screens/login_pwd_screen.dart';
import 'package:casdon/modules/login/ui/screens/register_account_screen.dart';
import 'package:casdon/modules/login/ui/screens/set_new_pwd_screen.dart';
import 'package:casdon/modules/login/ui/widgets/web_page.dart';
import 'package:casdon/modules/me/data/api/service_order_api.dart';
import 'package:casdon/modules/me/domain/enums/service_order_category.dart';
import 'package:casdon/modules/me/ui/screen/account_security_screen.dart';
import 'package:casdon/modules/me/ui/screen/app_about_screen.dart';
import 'package:casdon/modules/me/ui/screen/browsing_history_screen.dart';
import 'package:casdon/modules/me/ui/screen/del_account_screen.dart';
import 'package:casdon/modules/me/ui/screen/fans_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/flower_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/me_info_screen.dart';
import 'package:casdon/modules/me/ui/screen/me_screen.dart';
import 'package:casdon/modules/me/ui/screen/me_setting_screen.dart';
import 'package:casdon/modules/me/ui/screen/verify_identity_screen.dart';
import 'package:casdon/modules/recipe/data/model/recipe_module_model.dart';
import 'package:casdon/modules/recipe/ui/screen/cook_course_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_List_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_category_detail_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_category_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_collect_list_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_detail_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_promotion_list_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_search_screen.dart';
import 'package:casdon/modules/recipe/ui/screen/recipe_style1_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_channel_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_order_detail_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_order_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_order_post_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_product_list_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_repair_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_submit_failure_screen.dart';
import 'package:casdon/modules/me/ui/screen/service_submit_success_screen.dart';
import 'package:flutter/material.dart';

part 'auto_router.gr.dart';

/// 全局路由实例，便于在非 widget 场景使用
final appRouter = AppRouter();

@AutoRouterConfig(replaceInRouteName: 'Screen,Route')
class AppRouter extends _$AppRouter {
  @override
  List<AutoRoute> get routes => [
    AutoRoute(page: SplashRoute.page, path: '/'),
    AutoRoute(page: TabRoute.page, path: '/tab'),
    AutoRoute(page: AccountInputRoute.page, path: '/login_account_input'),
    AutoRoute(page: AccountSecurityRoute.page, path: '/account_security'),
    AutoRoute(page: AddDeviceProgressRoute.page, path: '/add_device_progress'),
    AutoRoute(page: AppAboutRoute.page, path: '/app_about'),
    AutoRoute(page: BindAccountRoute.page, path: '/bind_account'),
    AutoRoute(page: BrowsingHistoryRoute.page, path: '/browsing_history'),
    AutoRoute(page: CiotPairnetGuidRoute.page, path: '/ciot_pairnet_guid'),
    AutoRoute(page: CodeInputRoute.page, path: '/login_code_input'),
    AutoRoute(page: CookCourseRoute.page, path: '/cook_course'),
    AutoRoute(page: DelAccountRoute.page, path: '/del_account'),
    AutoRoute(page: DeviceHomeRoute.page, path: '/device_home'),
    AutoRoute(page: DeviceShareListRoute.page, path: '/device_share_list'),
    AutoRoute(page: FansListRoute.page, path: '/fans_list'),
    AutoRoute(page: FeedbackContinueRoute.page, path: '/feedback_continue'),
    AutoRoute(page: FeedbackListRoute.page, path: '/feedback_list'),
    AutoRoute(page: FeedbackPostRoute.page, path: '/feedback_post'),
    AutoRoute(page: FlowerListRoute.page, path: '/flower_list'),
    AutoRoute(page: ForgetPwdRoute.page, path: '/forget_pwd'),
    AutoRoute(page: GetBindCatCodeRoute.page, path: '/get_bind_cat_code'),
    AutoRoute(page: HomeRoute.page, path: '/home'),
    AutoRoute(page: ImageBrowserRoute.page, path: '/image_browser'),
    AutoRoute(page: LifeCreatePostRoute.page, path: '/life_create_post'),
    AutoRoute(page: LifeHomeRoute.page, path: '/life_home'),
    AutoRoute(page: LifeOfficialTopicListRoute.page, path: '/life_official'),
    AutoRoute(page: LifeReportRoute.page, path: '/life_report'),
    AutoRoute(page: LifeSearchRoute.page, path: '/life_search'),
    AutoRoute(page: LifeSelfHomeRoute.page, path: '/life_self_home'),
    AutoRoute(page: LifeTopicDetailRoute.page, path: '/life_topic_detail'),
    AutoRoute(page: LifeUserHomeRoute.page, path: '/life_user_home'),
    AutoRoute(page: LoginPwdRoute.page, path: '/login_pwd'),
    AutoRoute(page: MeInfoRoute.page, path: '/me_info'),
    AutoRoute(page: MeRoute.page, path: '/me'),
    AutoRoute(page: MeSettingRoute.page, path: '/me_setting'),
    AutoRoute(page: PairnetFailedRoute.page, path: '/pairnet_failed'),
    AutoRoute(page: PairnetListRoute.page, path: '/pairnet_list'),
    AutoRoute(page: PairnetReadmeRoute.page, path: '/pairnet_readme'),
    AutoRoute(page: PairnetSuccessRoute.page, path: '/pairnet_success'),
    AutoRoute(page: QRScannerRoute.page, path: '/qr_scanner'),
    AutoRoute(page: QrDeviceProgressRoute.page, path: '/qr_device_progress'),
    AutoRoute(page: TMBindAccountRoute.page, path: '/tm_bind_account'),
    AutoRoute(page: TMBindResultRoute.page, path: '/tm_bind_result'),
    AutoRoute(page: RecipeCategoryRoute.page, path: '/recipe_category'),

    AutoRoute(
      page: RecipeCategoryDetailRoute.page,
      path: '/recipe_category_detail',
    ),
    AutoRoute(page: RecipeCollectListRoute.page, path: '/recipe_collect_list'),
    AutoRoute(page: RecipeDetailRoute.page, path: '/recipe_detail'),
    AutoRoute(page: RecipeListRoute.page, path: '/recipe_list'),
    AutoRoute(
      page: RecipePromotionListRoute.page,
      path: '/recipe_promotion_list',
    ),
    AutoRoute(page: RecipeSearchRoute.page, path: '/recipe_search'),
    AutoRoute(page: RecipeStyle1ListRoute.page, path: '/recipe_style1_list'),
    AutoRoute(page: RegisterAccountRoute.page, path: '/register_account'),
    AutoRoute(page: ReplyListRoute.page, path: '/reply_list'),
    AutoRoute(
      page: ServiceChannelListRoute.page,
      path: '/service_channel_list',
    ),
    AutoRoute(page: ServiceOrderListRoute.page, path: '/service_order_list'),
    AutoRoute(page: ServiceOrderPostRoute.page, path: '/service_order_post'),
    AutoRoute(
      page: ServiceOrderDetailRoute.page,
      path: '/service_order_detail',
    ),
    AutoRoute(
      page: ServiceProductListRoute.page,
      path: '/service_product_list',
    ),
    AutoRoute(page: ServiceRepairRoute.page, path: '/service_repair'),
    AutoRoute(
      page: ServiceSubmitFailureRoute.page,
      path: '/service_submit_failure',
    ),
    AutoRoute(
      page: ServiceSubmitSuccessRoute.page,
      path: '/service_submit_success',
    ),
    AutoRoute(page: SetNewPwdRoute.page, path: '/set_new_pwd'),
    AutoRoute(page: TuyaPairnetGuidRoute.page, path: '/tuya_pairnet_guid'),
    AutoRoute(page: VerifyIdentityRoute.page, path: '/verify_identity'),
    AutoRoute(page: VideoPlayerRoute.page, path: '/video_player'),
    AutoRoute(page: WifiConfigRoute.page, path: '/wifi_config'),
    AutoRoute(page: WebPageRoute.page, path: '/web'),
  ];
}
